package com.pmt.feedplayer.processor

import kotlinx.coroutines.flow.Flow

/**
 * 视频处理器接口
 * 用于执行视频和音频的分离等操作
 */
interface VideoProcessor {
    /**
     * 分离视频和音频
     * @param videoPath 视频文件路径
     * @param outputVideoPath 输出视频文件路径
     * @param outputAudioPath 输出音频文件路径
     * @return 处理进度的Flow，值范围为0-100
     */
    fun extractAudioAndVideo(
        videoPath: String,
        outputVideoPath: String,
        outputAudioPath: String
    ): Flow<Int>
    
    /**
     * 仅提取音频
     * @param videoPath 视频文件路径
     * @param outputAudioPath 输出音频文件路径
     * @return 处理进度的Flow，值范围为0-100
     */
    fun extractAudioOnly(
        videoPath: String,
        outputAudioPath: String
    ): Flow<Int>
    
    /**
     * 仅提取视频
     * @param videoPath 视频文件路径
     * @param outputVideoPath 输出视频文件路径
     * @return 处理进度的Flow，值范围为0-100
     */
    fun extractVideoOnly(
        videoPath: String,
        outputVideoPath: String
    ): Flow<Int>
}